package com.blog.service;

import com.blog.entity.Page;
import com.blog.entity.Post;
import com.blog.entity.User;

public interface UserService {
	/**
	 * 添加用户功能
	 * 传入参数：userName userPass userSex userBirth userPhone userEmail individualResume userHeadImg 
	 * 返回值：-1/0/1   通过传入的userName和userPass查询用户是否存在，不存在添加
	 * -1：用户存在
	 * 0：添加失败
	 * 1：添加成功
	 * */
	 int insterUser(User user);

	/**
	 * 根据用户名和密码查询
	 * 传入参数：userName userPass
	 * 返回值：User   通过传入的userName和userPass查询用户
	 * */
	 User selectUserByName(String username,String password);
	 
	 /**
	  * 根据用户Id修改基本信息
	  * 传入参数：userId
	  * 返回值：-1/1   通过传入的id修改用户信息
	  * -1：修改失败
	  * 1：修改成功
	  * */
	 int updateById(User user);
	
	 
	 /**
	  * 根据用户Id查询所有信息
	  * 传入参数：userId
	 * 返回值：User   通过传入的userId查询用户的信息
	  * */
	 User selectById(int userId);
	 
	 /**
	  * 根据用户Id删除（注销）该用户 
	  * 传入参数：userId
	  * 返回值：-1/1   通过传入的id删除该用户
	  * -1：删除失败
	  * 1：删除成功
	  * */
	 int deleteById(int userId);
	 
	 /**
	  * 根据用户Id查询该用户发布的所有帖子
	  *  传入参数：userId pageNum pageSize
	  * 返回值：Page<Post>  查询userId发布的所有帖子
	  * */
	 Page<Post> selectAllPostById(int userId,int pageNum,int pageSize );
	 
	 /**
	  * 根据用户Id查询所有帖子审核状态（-1/0/1）
	  * 传入参数：userId pageNum pageSize
	  * 返回值：int  查询userId查询审核结果
	  * -1：审核未通过
	  * 0：审核中
	  * 1：审通过
	  * */
	 int selectAllPostById(int userId);
	 
	 /**
	  * 根据用户Id用户的粉丝
	  * 传入参数：likeId pageNum pageSize
	  * 返回值：Page<Post>  根据likeId查询用户的粉丝
	  * */
	 Page<User> selectByLikeId(int likeId,int pageNum,int pageSize);
	 
	 /**
	  * 根据用户Id用户关注
	  * 传入参数：userId pageNum pageSize
	  * 返回值：Page<Post>  根据userId查询用户的关注
	  * */
	 Page<User> selectByUserId(int userId,int pageNum,int pageSize);

	Page<User> selectUsercheck(int pageNum, int pageSize);
}
